<?php
class Gallery_Bootstrap extends Zend_Application_Module_Bootstrap {
	/**
	 * Ustaawienie sesji gdy flash jest w tle
	 * TODO Każdy bootstrap modułu jest ładowany i bootstrapowany
	 * co jest niefajne! Zrobić bbotstrapowanie modułu gdy jest on wykorzystywany! 
	 * @return void
	 */
	protected function _initSessionId() {
		/**
		 * NOTKA ZF 1.8.2:
		 * Nie podoba mi się to że $this->bootstrap('FrontController')
		 * w @see Zend_Application_Module_Bootstrap
		 * bostrapuje jeszcze raz FrontController! jako że $this->_run nie jest static
		 * w @see Zend_Application_Bootstrap_BootstrapAbstract @method _makeRun
		 * 
		 * Może.. może są tego jakies korzyści.. ale puki bootstrap modułu jest zawsze ładowany
		 * ja takich nie widzę!
		 * 
		 * ................... bleeeeeee....
		 */
		$front = $this->getPluginResource('FrontController')->getFrontController();
		$request = $front->getRequest();
		if ($request->isFlashRequest()) {
			$sessionName = session_name();
			if (!Zend_Session::sessionExists()) {
				$sessionId = $request->getPost($sessionName);
				if (strlen($sessionId)) {
					Zend_Session::setId($sessionId);
				}
			}
			else {
				// alternatywa gdy identyfikator sesji == ''
				$sessionId = Zend_Session::getId();
				if (!strlen($sessionId)) {
					$sessionId = @$_REQUEST[$sessionName];
					if (strlen($sessionId)) {
						Zend_Session::setId($sessionId);
					}
				}
			}
		}
	}

	public function initResourceLoader() {
		$this->getResourceLoader()
			->addResourceTypes(array(
				'observer' => array(
					'namespace' => 'Model_Observer',
					'path'      => 'models/Observer',
				))
			);
	}
}